﻿using System;
using System.Collections.Generic;
using System.Web;
using System.Data.SqlClient;
using System.Data;
using MySql.Data.MySqlClient;
using System.Text;

namespace DA
{
    public class Meetings : GO.BaseClass
    {
        public VO.Meetings objVO;
        public VO.Meeting_Imagens objVOImagens;

        public Meetings()
        {
            objVO = new VO.Meetings();
            objVOImagens = new VO.Meeting_Imagens();
            sbSQL = new StringBuilder();
        }

        public void Salvar()
        {
            // MONTA A INSTRUÇÃO SQL
            sbSQL.Append(" INSERT INTO `Meetings` (Titulo, DataCadastro, Texto, idUnidade) ");
            sbSQL.Append(" VALUES('p_Titulo','p_DataCadastro', 'p_Texto', p_idUnidade); ");

            // SUBSTITUI OS PARÂMETROS
            sbSQL.Replace("p_Titulo", objVO.Titulo);
            sbSQL.Replace("p_DataCadastro", objVO.DataCadastro.ToString("s"));
            sbSQL.Replace("p_Texto", objVO.Texto);
            sbSQL.Replace("p_idUnidade", objVO.IdUnidade.ToString());

            // EXECUTA INSTRUÇÃO
            GO.MySQLHelper.ExecuteNonQuery(getConn(), sbSQL.ToString(), CommandType.Text);

            // LIMPA VARIÁVEL
            sbSQL.Remove(0, sbSQL.Length);
        }

        public void Atualizar()
        {
            // MONTA A INSTRUÇÃO SQL
            sbSQL.Append(" UPDATE `Meetings` SET");
            sbSQL.Append("     Titulo  = 'p_Titulo ',");
            sbSQL.Append("     DataCadastro = 'p_DataCadastro' ");
            sbSQL.Append("     Texto  = 'p_Texto',");
            sbSQL.Append("     idUnidade  = 'p_idUnidade'");
            sbSQL.Append(" WHERE ");
            sbSQL.Append(" 	   idMeeting   = p_idMeeting  ;        ");

            // SUBSTITUI OS PARÂMETROS
            sbSQL.Replace("p_idMeeting", objVO.IdMeeting.ToString());
            sbSQL.Replace("p_Titulo", objVO.Titulo);
            sbSQL.Replace("p_DataCadastro", objVO.DataCadastro.ToString("s"));
            sbSQL.Replace("p_Texto", objVO.Texto);
            sbSQL.Replace("p_idUnidade", objVO.IdUnidade.ToString());

            GO.MySQLHelper.ExecuteNonQuery(getConn(), sbSQL.ToString(), CommandType.Text);

            sbSQL.Remove(0, sbSQL.Length);
        }

        public void Excluir()
        {
            sbSQL.Append(" DELETE FROM `Meeting_Imagens` ");
            sbSQL.Append(" WHERE idMeeting   = p_idMeeting  ; ");
            
            sbSQL.Append(" DELETE FROM `Meetings` ");
            sbSQL.Append(" WHERE idMeeting   = p_idMeeting  ; ");

            // SUBSTITUI OS PARÂMETROS
            sbSQL.Replace("p_idMeeting", objVO.IdMeeting.ToString());

            GO.MySQLHelper.ExecuteNonQuery(getConn(), sbSQL.ToString(), CommandType.Text);
        }

        public DataSet getTodosRegistros()
        {

            sbSQL.Append(" SELECT * FROM `Meetings`; ");

            return GO.MySQLHelper.ExecuteDataset(getConn(), sbSQL.ToString(), CommandType.Text);
        }

        public DataSet getRegistroById()
        {
            sbSQL.Append(" SELECT * FROM `Meetings` ");
            sbSQL.Append(" WHERE idMeeting = p_idMeeting; ");
            sbSQL.Replace("p_idMeeting", objVO.IdMeeting.ToString());

            return GO.MySQLHelper.ExecuteDataset(getConn(), sbSQL.ToString(), CommandType.Text);
        }

        public DataSet getImgByMeeting()
        {
            sbSQL.Append(" SELECT * FROM `Meeting_Imagens` ");
            sbSQL.Append(" WHERE idMeeting = p_idMeeting; ");

            sbSQL.Replace("p_idMeeting", objVOImagens.IdMeeting.ToString());

            return GO.MySQLHelper.ExecuteDataset(getConn(), sbSQL.ToString(), CommandType.Text);
        }

        public void SalvaImg()
        {
            sbSQL.Append(" INSERT INTO `Meeting_Imagens` (Imagem, Thumb, idMeeting) ");
            sbSQL.Append(" VALUES ('p_Imagem', 'p_Thumb', p_idMeeting); ");
            
            sbSQL.Replace("p_Imagem", objVOImagens.Imagem);
            sbSQL.Replace("p_Thumb", objVOImagens.Thumb);
            sbSQL.Replace("p_idMeeting", objVOImagens.IdMeeting.ToString());

            // EXECUTA INSTRUÇÃO
            GO.MySQLHelper.ExecuteNonQuery(getConn(), sbSQL.ToString(), CommandType.Text);

            // LIMPA VARIÁVEL
            sbSQL.Remove(0, sbSQL.Length);
        }

        public void DeletaImg()
        {
            sbSQL.Append(" DELETE FROM `Meeting_Imagens` ");
            sbSQL.Append(" WHERE idImagem   = p_idImagem  ; ");

            // SUBSTITUI OS PARÂMETROS
            sbSQL.Replace("p_idImagem", objVOImagens.IdImagem.ToString());

            // EXECUTA INSTRUÇÃO
            GO.MySQLHelper.ExecuteNonQuery(getConn(), sbSQL.ToString(), CommandType.Text);
        }

        public DataSet getRegistroMeeting()
        {
            sbSQL.Append(" SELECT * FROM `Meetings` ");

            return GO.MySQLHelper.ExecuteDataset(getConn(), sbSQL.ToString(), CommandType.Text);
        }

        public DataSet getRegistroMeetingImg()
        {
            sbSQL.Append(" SELECT * FROM `Meeting_Imagens` ");
            sbSQL.Append(" WHERE idMeeting   = p_idMeeting  ; ");

            sbSQL.Replace("p_idMeeting", objVOImagens.IdMeeting.ToString());

            return GO.MySQLHelper.ExecuteDataset(getConn(), sbSQL.ToString(), CommandType.Text);
        }

        public DataSet getTodosRegistroMeetingsByUnidade()
        {
            sbSQL.Append(" SELECT * FROM `Meetings` ");
            sbSQL.Append(" WHERE idUnidade = p_idUnidade ");
            sbSQL.Append(" ORDER BY DataCadastro ASC ");
            sbSQL.Append(" LIMIT 0,6; ");
            sbSQL.Replace("p_idUnidade", objVO.IdUnidade.ToString());

            return GO.MySQLHelper.ExecuteDataset(getConn(), sbSQL.ToString(), CommandType.Text);
        }
    }
} 